Понедельник — отличный день, чтобы разогреть мозги небольшим техническим кейсом 💡 Сегодня короткий, но полезный пост — с ответом сразу.
📌 Дано:
create table demo_table ( ID char(4 CHAR), value VARCHAR2(64 CHAR) );
Известно, что есть следующие индексы и ключи:
create index DEMO_TBL_VALUE_IX on demo_table (VALUE);
alter table DEMO_TABLE add constraint DEMO_TBL_PK primary key (ID) using index;
Вопрос (c подвохом) почему такая вставка проходит:
insert into demo_table values('0001', 1000);
А эта падает с ошибкойORA-01722: неверное число:
insert into demo_table values('0002', 'Test');
Ответ при наличии следующего индекса
create index DEMO_TBL_NUM_IX on demo_table(trunc(VALUE));
Такая конструкция называется индексом по функции (function based index). В реальных проектах она используется довольно часто, например, когда на строковое поле мы создаем индекс UPPER(<column>). Особенность такого индекса в том, что в листьях он хранит результат выполнения этой функции для каждого rowid. Поэтому никакой магии тут нет: если мы не можем записать в индекс результат функции, то и вставку выполнить мы не можем.
В нашем случае, функция trunc пытается примениться к значению value. В первой строке - 1000 (все ок), во второй - 'Test' (ошибка).
Ставьте лайк, если было познавательно. 🔔 Если хотите узнать больше про индексы, следите за каналом — завтра будет важное объявление.
Понедельник — отличный день, чтобы разогреть мозги небольшим техническим кейсом 💡 Сегодня короткий, но полезный пост — с ответом сразу.
📌 Дано:
create table demo_table ( ID char(4 CHAR), value VARCHAR2(64 CHAR) );
Известно, что есть следующие индексы и ключи:
create index DEMO_TBL_VALUE_IX on demo_table (VALUE);
alter table DEMO_TABLE add constraint DEMO_TBL_PK primary key (ID) using index;
Вопрос (c подвохом) почему такая вставка проходит:
insert into demo_table values('0001', 1000);
А эта падает с ошибкойORA-01722: неверное число:
insert into demo_table values('0002', 'Test');
Ответ при наличии следующего индекса
create index DEMO_TBL_NUM_IX on demo_table(trunc(VALUE));
Такая конструкция называется индексом по функции (function based index). В реальных проектах она используется довольно часто, например, когда на строковое поле мы создаем индекс UPPER(<column>). Особенность такого индекса в том, что в листьях он хранит результат выполнения этой функции для каждого rowid. Поэтому никакой магии тут нет: если мы не можем записать в индекс результат функции, то и вставку выполнить мы не можем.
В нашем случае, функция trunc пытается примениться к значению value. В первой строке - 1000 (все ок), во второй - 'Test' (ошибка).
Ставьте лайк, если было познавательно. 🔔 Если хотите узнать больше про индексы, следите за каналом — завтра будет важное объявление.
Pinterest (PINS) closed at $71.75 in the latest trading session, marking a -0.18% move from the prior day. This change lagged the S&P 500's daily gain of 0.1%. Meanwhile, the Dow gained 0.9%, and the Nasdaq, a tech-heavy index, lost 0.59%.
Heading into today, shares of the digital pinboard and shopping tool company had lost 17.41% over the past month, lagging the Computer and Technology sector's loss of 5.38% and the S&P 500's gain of 0.71% in that time.
Investors will be hoping for strength from PINS as it approaches its next earnings release. The company is expected to report EPS of $0.07, up 170% from the prior-year quarter. Our most recent consensus estimate is calling for quarterly revenue of $467.87 million, up 72.05% from the year-ago period.
How Does Bitcoin Work?
Bitcoin is built on a distributed digital record called a blockchain. As the name implies, blockchain is a linked body of data, made up of units called blocks that contain information about each and every transaction, including date and time, total value, buyer and seller, and a unique identifying code for each exchange. Entries are strung together in chronological order, creating a digital chain of blocks. “Once a block is added to the blockchain, it becomes accessible to anyone who wishes to view it, acting as a public ledger of cryptocurrency transactions,” says Stacey Harris, consultant for Pelicoin, a network of cryptocurrency ATMs. Blockchain is decentralized, which means it’s not controlled by any one organization. “It’s like a Google Doc that anyone can work on,” says Buchi Okoro, CEO and co-founder of African cryptocurrency exchange Quidax. “Nobody owns it, but anyone who has a link can contribute to it. And as different people update it, your copy also gets updated.”